/**
 * @author Tobias Boehm
 *
 * 03.06.2011
 */
package org.anddev.andengine.extension.tbsengine.match;

import org.anddev.andengine.extension.tbsengine.match.gamestate.AbsGlobalGameState;
import org.anddev.andengine.extension.tbsengine.match.gamestate.AbsPlayerGameState;

/**
 * This is the implementation of the smallest piece of a match. It represents
 * a specific step or action which leads to an instance of {@link ResultSet}.
 * A step always belongs to a specific {@link Turn} of a specific {@link AbsPlayerGameState}.
 * <p>
 * Notice:<br>
 * This class is in development and may change or even disappear in the future.
 * 
 * @author Tobias Boehm
 *
 */
public abstract class AbsStep {

	/**
	 * The ID of this step which determines its position inside the turn.
	 */
	protected final int mStepID;
	
	/**
	 * A reference to the {@link AbsGlobalGameState} to which this Step belongs to.
	 */
	protected final AbsGlobalGameState mGlobalGameState;
	
	/**
	 * This are the results of this step or action.
	 */
	protected ResultSet mResultSet;
	
	/**
	 * The default constructor.
	 * 
	 * @param pGlobalGameState - A reference to the {@link AbsGlobalGameState} to which this Step belongs to.
	 * @param pStepID -  The ID of this step which determines its position inside the turn.
	 */
	public AbsStep(final AbsGlobalGameState pGlobalGameState, final int pStepID){
		
		this.mStepID = pStepID;
		
		this.mGlobalGameState = pGlobalGameState;
	}
}
